"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const client_1 = require("@prisma/client");
async function initDatabase() {
    const prisma = new client_1.PrismaClient();
    try {
        await prisma.$connect();
        console.log('✅ 数据库连接成功');
        // 检查是否已有分类数据
        const categoryCount = await prisma.category.count();
        if (categoryCount === 0) {
            console.log('未找到分类数据，正在初始化...');
            // 创建默认分类
            const categories = [
                { name: '开发工具', icon: '💻' },
                { name: '设计工具', icon: '🎨' },
                { name: '效率工具', icon: '⚡' },
                { name: '娱乐游戏', icon: '🎮' },
                { name: '学习教育', icon: '📚' },
                { name: '生活服务', icon: '🏠' }
            ];
            for (const category of categories) {
                await prisma.category.create({
                    data: category
                });
                console.log(`✅ 创建分类: ${category.name}`);
            }
            console.log('✅ 分类数据初始化完成');
        }
        else {
            console.log(`✅ 已存在 ${categoryCount} 个分类`);
        }
        // 检查是否已有管理员用户
        const adminUser = await prisma.user.findFirst({
            where: {
                role: 'ADMIN'
            }
        });
        if (!adminUser) {
            console.log('未找到管理员用户，正在创建默认管理员...');
            // 创建默认管理员用户 (仅用于开发环境)
            if (process.env.NODE_ENV === 'development') {
                const defaultAdmin = await prisma.user.create({
                    data: {
                        email: 'admin@dev.local',
                        name: '管理员',
                        role: 'ADMIN',
                        password: '$2a$12$rXHzJ0c.cxZZFqIm0C3N0uY9aDv5A7VbYJ0HnQbTbIzP4Y9mQ2YyG' // bcrypt hash of "admin"
                    }
                });
                console.log(`✅ 创建默认管理员用户: ${defaultAdmin.email}`);
            }
            else {
                console.log('生产环境中不会自动创建管理员用户，请手动创建');
            }
        }
        else {
            console.log(`✅ 已存在管理员用户: ${adminUser.email}`);
        }
    }
    catch (error) {
        console.error('数据库初始化失败:', error);
    }
    finally {
        await prisma.$disconnect();
    }
}
initDatabase();
